package top.lunarye.support.utils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author lunar
 * @since 2022-07-12
 */
public class DelayLevelCalculateUtils {
    private static List<Integer> defaultLevelList;

    static {
        defaultLevelList = new ArrayList<>();
        defaultLevelList.add(1);
        defaultLevelList.add(5);
        defaultLevelList.add(10);
        defaultLevelList.add(30);
        defaultLevelList.add(60);
        defaultLevelList.add(120);
        defaultLevelList.add(180);
        defaultLevelList.add(240);
        defaultLevelList.add(300);
        defaultLevelList.add(360);
        defaultLevelList.add(420);
        defaultLevelList.add(480);
        defaultLevelList.add(540);
        defaultLevelList.add(600);
        defaultLevelList.add(1200);
        defaultLevelList.add(1800);
        defaultLevelList.add(3600);
        defaultLevelList.add(7200);
    }

    public static Integer calculateDefault(long second) {
        Integer level = null;
        for (int i = defaultLevelList.size() - 1; i >= 0; i--) {
            int l = (int) second / defaultLevelList.get(i);
            if (l > 0 && level == null) {
                level = i;
            }
            if (level == null) {
                continue;
            }
            if (level < i) {
                break;
            }
        }
        return level + 1;
    }

    public static int calculateNum(long second) {
        for (int i = defaultLevelList.size() - 1; i >= 0; i--) {
            int l = (int) second / defaultLevelList.get(i);
            if (l != 0) {
                return l;
            }
        }
        return 0;
    }

    public static long get(Integer index) {
        return defaultLevelList.get(index);
    }
}
